Почти целый день проебался с одной проблемой с анимацией.
Запускается анимация по перемещению двух View, примерно такая:
delay:0
options:
UIViewAnimationOptionCurveLinear
| UIViewAnimationOptionOverrideInheritedOptions
| UIViewAnimationOptionBeginFromCurrentState
animations:^{
NSLog(@"начало анимации");
animControllerNew.view.frame=newFrame;
animControllerOld.view.frame=oldFrame;
}
completion:^(BOOL finished){
NSLog(@"конец анимации, finished=%d",finished);
}];
Внутри вьюшек есть свои анимации.
Пару-тройку раз после запуска все работает как надо, вьюшки ползают по две секунды, потом начинают перещелкиваться мгновенно. При этом, finished = true, т.е. анимация, вроде как, закончена успешно.
Решение оказалось неожиданно простым: перед каждым созданием анимацией добавить строку
Причем, что самое странное, никто анимацию в коде не отключает. Но метод работает.
Как говорится - хозяйке на заметку :)